/*
 * @(#)StreamGobbler.java 
 *
 * Project: BUS
 *
 * Modify Information:
 * =============================================================================
 *   Author       Date       Description
 *   vincent     2006-03-06   first release  
 *   ------------ ---------- ---------------------------------------------------
 *
 * Copyright Notice:
 * =============================================================================
 *    Copyright (c) 2001-2005 Beijing HiTRUST Technology Co., Ltd. 1808 Room, 
 *        Science & Technology Building, No. 9 South Street, Zhong Guan Cun, 
 *        Haidian District, Beijing ,100081, China All rights reserved.
 *
 *    This software is the confidential and proprietary information of
 *        Beijing HiTRUST Technology Co., Ltd. ("Confidential Information").
 *        You shall not disclose such Confidential Information and shall use it
 *        only in accordance with the terms of the license agreement you entered
 *        into with HiTRUST.
 *
 * Warning:
 * =============================================================================
 */
package com.hitrust.gs.lib.db.backup;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;

import com.hitrust.gs.lib.GSLogWriter;

public class StreamGobbler extends Thread {
		
		InputStream is;
		String type;
		OutputStream os;

		StreamGobbler(InputStream is, String type) {
			this(is, type, null);
		}
		StreamGobbler(InputStream is, String type, OutputStream redirect) {
			this.is = is;
			this.type = type;
			this.os = redirect;
		}
		public void run() {
			try {
				PrintWriter pw = null;
				if (os != null){
					pw = new PrintWriter(os);
				}
				InputStreamReader isr = new InputStreamReader(is);
				BufferedReader br = new BufferedReader(isr);
				String line = null;
				while ((line = br.readLine()) != null) {
					if (pw != null)
						pw.println(line);
						GSLogWriter.info(type + ">" + line);
						System.out.println(type + ">" + line);
				}
				if (pw != null)
					pw.flush();
			} catch (IOException io) {
				GSLogWriter.error(this,io.getMessage());
			}
		}
	}
